
import Vue from "vue"
import store from "@/store";



// v-authority
// v-authority 参数:  remove (删除元素)  disabled(禁用元素)
// v-authority 修饰符:  superAdmin (超级管理员)    admin (管理员)  normal(普通用户)
// v-authority:remove.superAdmin  => 如果不是超级管理员 就删除
// v-authority:disabled.superAdmin  => 如果不是超级管理员 就禁用元素


Vue.directive("authority", async function (el, binding) {
    console.log("el", el);
    console.log("binding", binding);

    let { role } = store.state;

    let { arg, modifiers: { superAdmin, admin } } = binding;

    await Vue.nextTick();  // 等视图更新完毕  (如果不加回调函数 返回Promise实例 -> 等视图更新之后改变实例的状态)

    if (superAdmin && role != 1) { // 要求是超级管理员 -> 如果不是超级管理员 -> 就执行对应的操作
        switch (arg) {
            case "remove":
                console.log("删除");
                el.remove();
                break;
            case "disabled":
                el.disabled = true;
                el.classList.add("is-disabled");
                break;
        }
    } else if (admin && role != 1 && role != 2) { // 要求是管理员 -> 如果不是管理员 -> 就执行对应的操作
        switch (arg) {
            case "remove": el.remove(); break;
            case "disabled":
                el.disabled = true;
                el.classList.add("is-disabled");
                break;
        }
    }
    //  else if (normal && role == 3) {  // 直接对普通用户 禁用或删除 (和上述第二项一致)
    //     switch (arg) {
    //         case "remove": el.remove(); break;
    //         case "disabled":
    //             el.disabled = true;
    //             el.classList.add("is-disabled");
    //             break;
    //     }
    // }


})

